﻿<?php
/**
 * @version        $Id: reg_new.php 1 8:38 2010年7月9日Z tianya $
 * @package        DedeCMS.Member
 * @copyright      Copyright (c) 2007 - 2010, DesDev, Inc.
 * @license        http://help.dedecms.com/usersguide/license.html
 * @link           http://www.dedecms.com
 */
require_once(dirname(__FILE__)."/config.php");
require_once DEDEINC.'/membermodel.cls.php';
if($cfg_mb_allowreg=='N')
{
    ShowMsg('系统关闭了新用户注册！', 'index.php');
    exit();
}

if(!isset($dopost)) $dopost = '';
$step = empty($step)? 1 : intval(preg_replace("/[^\d]/", '', $step));

	if($dopost=='regbase')
	{
		$svali = GetCkVdValue();
		if(preg_match("/1/", $safe_gdopen)){
			if(strtolower($vdcode)!=$svali || $svali=='')
			{
				ResetVdValue();
				ShowMsg('验证码错误！', '-1');
				exit();
			}
		}
		
		$faqkey = isset($faqkey) && is_numeric($faqkey) ? $faqkey : 0;
		if($safe_faq_reg == '1')
		{
			if($safefaqs[$faqkey]['answer'] != $rsafeanswer || $rsafeanswer=='')
			{
				ShowMsg('验证问题答案错误', '-1');
				exit();
			}
		}
		
		$userid = trim($userid);
		$pwd = trim($userpwd);
		$pwdc = trim($userpwdok);
		$rs = CheckUserID($userid, '用户名');
		if($rs != 'ok')
		{
			ShowMsg($rs, '-1');
			exit();
		}
		if(strlen($userid) > 20 || strlen($uname) > 36)
		{
			ShowMsg('你的用户名或昵称过长，不允许注册！', '-1');
			exit();
		}
		if(strlen($userid) < $cfg_mb_idmin || strlen($pwd) < $cfg_mb_pwdmin)
		{
			ShowMsg("你的用户名或密码过短，不允许注册！","-1");
			exit();
		}
		if($pwdc != $pwd)
		{
			ShowMsg('你两次输入的密码不一致！', '-1');
			exit();
		}
		
		$uname = HtmlReplace($uname, 1);
		//用户笔名重复检测
		if($cfg_mb_wnameone=='N')
		{
			$row = $dsql->GetOne("SELECT * FROM `#@__member` WHERE uname LIKE '$uname' ");
			if(is_array($row))
			{
				ShowMsg('用户笔名或公司名称不能重复！', '-1');
				exit();
			}
		}
		if(!CheckEmail($email))
		{
			ShowMsg('Email格式不正确！', '-1');
			exit();
		}
		
		#api{{
		if(defined('UC_API') && @include_once DEDEROOT.'/uc_client/client.php')
		{
			$uid = uc_user_register($userid, $pwd, $email);
			if($uid <= 0)
			{
				if($uid == -1)
				{
					ShowMsg("用户名不合法！","-1");
					exit();
				}
				elseif($uid == -2)
				{
					ShowMsg("包含要允许注册的词语！","-1");
					exit();
				}
				elseif($uid == -3)
				{
					ShowMsg("你指定的用户名 {$userid} 已存在，请使用别的用户名！","-1");
					exit();
				}
				elseif($uid == -5)
				{
					ShowMsg("你使用的Email 不允许注册！","-1");
					exit();
				}
				elseif($uid == -6)
				{
					ShowMsg("你使用的Email已经被另一帐号注册，请使其它帐号","-1");
					exit();
				}
				else
				{
					ShowMsg("注删失改！","-1");
					exit();
				}
			}
			else
			{
				$ucsynlogin = uc_user_synlogin($uid);
			}
		}
		#/aip}}
		
		if($cfg_md_mailtest=='Y')
		{
			$row = $dsql->GetOne("SELECT mid FROM `#@__member` WHERE email LIKE '$email' ");
			if(is_array($row))
			{
				ShowMsg('你使用的Email已经被另一帐号注册，请使其它帐号！', '-1');
				exit();
			}
		}

		//检测用户名是否存在
		$row = $dsql->GetOne("SELECT mid FROM `#@__member` WHERE userid LIKE '$userid' ");
		if(is_array($row))
		{
			ShowMsg("你指定的用户名 {$userid} 已存在，请使用别的用户名！", "-1");
			exit();
		}
		if($safequestion==0)
		{
			$safeanswer = '';
		}
		else
		{
			if(strlen($safeanswer)>30)
			{
				ShowMsg('你的新安全问题的答案太长了，请控制在30字节以内！', '-1');
				exit();
			}
		}

		//会员的默认金币
		$dfscores = 0;
		$dfmoney = 0;
		$dfrank = $dsql->GetOne("SELECT money,scores FROM `#@__arcrank` WHERE rank='10' ");
		if(is_array($dfrank))
		{
			$dfmoney = $dfrank['money'];
			$dfscores = $dfrank['scores'];
		}
		$jointime = time();
		$logintime = time();
		$joinip = GetIP();
		$loginip = GetIP();
		$pwd = md5($userpwd);
		$mtype = RemoveXSS(HtmlReplace($mtype,1));
		$safeanswer = HtmlReplace($safeanswer);
		$safequestion = HtmlReplace($safequestion);
		
		$spaceSta = ($cfg_mb_spacesta < 0 ? $cfg_mb_spacesta : 0);
		
		$inQuery = "INSERT INTO `#@__member` (`mtype` ,`userid` ,`pwd` ,`uname` ,`sex` ,`rank` ,`money` ,`email` ,`scores` ,
		`matt`, `spacesta` ,`face`,`safequestion`,`safeanswer` ,`jointime` ,`joinip` ,`logintime` ,`loginip` )
	   VALUES ('$mtype','$userid','$pwd','$uname','$sex','10','$dfmoney','$email','$dfscores',
	   '0','$spaceSta','','$safequestion','$safeanswer','$jointime','$joinip','$logintime','$loginip'); ";
		if($dsql->ExecuteNoneQuery($inQuery))
		{
			$mid = $dsql->GetLastID();

			//写入默认会员详细资料
			if($mtype=='个人'){
				$space='person';
			}else if($mtype=='企业'){
				$space='company';
			}else{
				$space='person';
			}

			//写入默认统计数据
			$membertjquery = "INSERT INTO `#@__member_tj` (`mid`,`article`,`album`,`archives`,`homecount`,`pagecount`,`feedback`,`friend`,`stow`)
				   VALUES ('$mid','0','0','0','0','0','0','0','0'); ";
			$dsql->ExecuteNoneQuery($membertjquery);

			//写入默认空间配置数据
			$spacequery = "INSERT INTO `#@__member_space`(`mid` ,`pagesize` ,`matt` ,`spacename` ,`spacelogo` ,`spacestyle`, `sign` ,`spacenews`)
					VALUES('{$mid}','10','0','{$uname}的空间','','$space','',''); ";
			$dsql->ExecuteNoneQuery($spacequery);

			//写入其它默认数据
			$dsql->ExecuteNoneQuery("INSERT INTO `#@__member_flink`(mid,title,url) VALUES('$mid','织梦内容管理系统','http://www.dedecms.com'); ");
			
			$membermodel = new membermodel($mtype);
			$modid=$membermodel->modid;
			$modid = empty($modid)? 0 : intval(preg_replace("/[^\d]/",'', $modid));
			$modelform = $dsql->getOne("SELECT * FROM #@__member_model WHERE id='$modid' ");
			
			if(!is_array($modelform))
			{
				showmsg('模型表单不存在', '-1');
				exit();
			}else{
				$dsql->ExecuteNoneQuery("INSERT INTO `{$membermodel->table}` (`mid`) VALUES ('{$mid}');");
			}
			
			//----------------------------------------------
			//模拟登录
			//---------------------------
			$cfg_ml = new MemberLogin(7*3600);
			$rs = $cfg_ml->CheckUser($userid, $userpwd);
			
			ShowMsg("注册成功，请填写参赛报名表", "{$cfg_memberurl}/reg_page2.php",0,1000);
			
		} else {
			ShowMsg("注册失败，请检查资料是否有误或与管理员联系！", "-1");
			exit();
		}
	}

	/* if(!$cfg_ml->IsLogin())
	{
		ShowMsg("尚未完成基本信息的注册,请返回重新填写！", "index_do.php?fmdo=user&dopost=regnew");
		exit;
	} else {
		if($cfg_ml->fields['spacesta'] == 2)
		{
			 ShowMsg('你已经登陆系统，无需重新注册！', 'index.php');
			 exit;
		}
	} 
	
	
 */
	
	$membermodel = new membermodel($cfg_ml->M_MbType);
	$postform = $membermodel->getForm(true);
	
	
	if($dopost == 'reginfo')
    {
        //这里完成详细内容填写
        $dede_fields = empty($dede_fields) ? '' : trim($dede_fields);
        $dede_fieldshash = empty($dede_fieldshash) ? '' : trim($dede_fieldshash);
        $modid = empty($modid)? 0 : intval(preg_replace("/[^\d]/",'', $modid));
        
/*         if(!empty($dede_fields))
        {
            if($dede_fieldshash != md5($dede_fields.$cfg_cookie_encode))
            {
                showMsg('数据校验不对，程序返回', '-1');
                exit();
            }
        } */
        $modelform = $dsql->GetOne("SELECT * FROM #@__member_model WHERE id='$modid' ");
		
		
		//echo "<br> dede_fields: ". $dede_fields;
		
        if(!is_array($modelform))
        {
            showmsg('模型表单不存在', '-1');
            exit();
        }
        $inadd_f = '';
        if(!empty($dede_fields))
        {
            $fieldarr = explode(';', $dede_fields);
            if(is_array($fieldarr))
            {
                foreach($fieldarr as $field)
                {
                    if($field == '') continue;
                    $fieldinfo = explode(',', $field);
                    if($fieldinfo[1] == 'textdata')
                    {
                        ${$fieldinfo[0]} = FilterSearch(stripslashes(${$fieldinfo[0]}));
                        ${$fieldinfo[0]} = addslashes(${$fieldinfo[0]});
                    }
                    else
                    {
                        if(empty(${$fieldinfo[0]})) ${$fieldinfo[0]} = '';
                        ${$fieldinfo[0]} = GetFieldValue(${$fieldinfo[0]}, $fieldinfo[1],0,'add','','diy', $fieldinfo[0]);
                    }
                    if($fieldinfo[0]=="birthday") ${$fieldinfo[0]}=GetDateMk(${$fieldinfo[0]});
					if($fieldinfo[0] == "group"){
						
						 $inadd_f .= ','.'team'." ='".${$fieldinfo[0]}."' ";
					}else{
						
						$inadd_f .= ','.'`'.$fieldinfo[0].'`'." ='".${$fieldinfo[0]}."' ";
					
					}
                    
                }
            }

        }
		/* echo "M_ID: ".$cfg_ml->M_ID;
		exit;
   */	
		//echo "M_ID: ".$cfg_ml->M_ID;
		//echo "<br> table: ".$membermodel->table;
		//echo "<br>".$inadd_f;
		
		//echo $postform;
		//exit;
		
        $query = "UPDATE `{$membermodel->table}` SET `mid`='{$cfg_ml->M_ID}' $inadd_f WHERE `mid`='{$cfg_ml->M_ID}'; ";
        
		//echo "<br>". $query;
/* 		echo "<br>".$dsql->ExecuteNoneQuery($query);
		exit; */
		if($dsql->ExecuteNoneQuery($query))
        {
            $dsql->ExecuteNoneQuery("UPDATE `#@__member` SET `spacesta`='2' WHERE `mid`='{$cfg_ml->M_ID}'");
            // 清除缓存
            $cfg_ml->DelCache($cfg_ml->M_ID);
            require_once(DEDEMEMBER."/tpl/reg_page3.htm");
            exit;
        }
		
		
		
		//echo $postform;
		//exit;
		
		echo "诸如失败";
		exit;
		
		
		/* 	
	if($dopost == 'reginfo')
	{	
		
		$query = "UPDATE `#@__member_player` SET 
							fullname = '{$_POST['fullname']}',
							age = '{$_POST['age']}',
							cellphone = '{$_POST['cellphone']}',
							project = '{$_POST['project']}',
							process = '{$_POST['process']}',
							projecttype = '{$_POST['projecttype']}',
							description = '{$_POST['description']}',
							lightpoint = '{$_POST['lightpoint']}',
							businessmodel = '{$_POST['businessmodel']}',
							marketanalysis = '{$_POST['marketanalysis']}',
							fund = '{$_POST['fund']}',
							plan = '{$_POST['plan']}',
							future = '{$_POST['future']}',
							group = '{$_POST['group']}',
							WHERE `mid`='{$cfg_ml->M_ID}';" ;
		
		if($dsql->executenonequery($query))
		{
			$dsql->ExecuteNoneQuery("UPDATE `#@__member` SET `spacesta`='2' WHERE `mid`='{$cfg_ml->M_ID}'");
			// 清除缓存
			$cfg_ml->DelCache($cfg_ml->M_ID);
			require_once(DEDEMEMBER."/tpl/reg_page3.htm");
			exit;
		}

 




		//require_once(DEDEMEMBER."/tpl/reg_page2.htm");

	*/	

	
	
    }
